﻿using System;
using System.Collections.Generic;
using System.Text;
using Wangzeran.CodeMaker.Core.Model;

namespace Wangzeran.CodeMaker.Core.DB
{
    /// <summary>
    /// 数据类型
    /// </summary>
    public class DataTypeSupport
    {
        /// <summary>
        /// 数据类型映射
        /// </summary>
        private static IDictionary<string, DataTypeModal> dataTypes
            = new Dictionary<string, DataTypeModal>();

        /// <summary>
        /// 当前使用的数据类型
        /// </summary>
        private static DataTypeModal useDataType;


        /// <summary>
        /// 数据类型映射
        /// </summary>
        public static IDictionary<string, DataTypeModal> DataTypes
        {
            get { return DataTypeSupport.dataTypes; }
            set { DataTypeSupport.dataTypes = value; }
        }

        /// <summary>
        /// 当前使用的数据类型
        /// </summary>
        public static DataTypeModal UseDataType
        {
            get { return DataTypeSupport.useDataType; }
            set { DataTypeSupport.useDataType = value; }
        }

        /// <summary>
        /// 注册数据类型
        /// </summary>
        /// <param name="dataType"></param>
        public static void RegisterDataType(DataTypeModal dataType)
        {
            dataTypes.Add(dataType.LanguageName, dataType);
        }

        /// <summary>
        /// 设置当前使用的语言数据类型
        /// </summary>
        /// <param name="languageName">语言名称</param>
        public static void SetToUse(string languageName)
        {
            if (useDataType != null && useDataType.LanguageName == languageName)
            {
                return;
            }
            if (dataTypes.ContainsKey(languageName))
            {
                useDataType = dataTypes[languageName];
            }
        }

    }
}
